//
//  UIImage+image.m
//  runtime
//
//  Created by dihuijun on 17/3/29.
//  Copyright © 2017年 Cycle. All rights reserved.
//

#import "UIImage+image.h"
#import <objc/message.h>
@implementation UIImage (image)
+(void)load
{
    NSLog(@"%s",__func__);
    ///交换方法实现
    //class_getMethodImplementation:获取方法实现
    //class_getInstanceMethod:获取对象
    //class_getClassMethod:获取类方法
    
    
    //imageNamed
    //Class:获取哪个类方法
    //SEL:获取方法编号，根据SEL就能去对应的类找方法
    Method imageNamedMethod = class_getClassMethod([UIImage class], @selector(imageNamed:));
    Method cycle_imageNamedMethod = class_getClassMethod([UIImage class], @selector(cycle_imageNamed:));
    //（自己的跟系统冲突，但为了还是使用系统的，但是功能更多，扩展）交换方法
    method_exchangeImplementations(imageNamedMethod, cycle_imageNamedMethod);
//    
//    UIImage *class = [[UIImage alloc]init];
//    
//    objc_msgSend(class,@selector(cycle_imageNamed:),@"00");
//    
}

+(__kindof UIImage *)cycle_imageNamed:(NSString *)imageName
{
    UIImage *image = [UIImage cycle_imageNamed:imageName];
    if (image==nil) {
        NSLog(@"image is null");
    }
    return image;
}
@end
